home *** CD-ROM | disk | FTP | other *** search
/ Freaks Macintosh Archive / Freaks Macintosh Archive.bin / Freaks Macintosh Archives / Textfiles / coloredbooks / BurgundyBook.sit.hqx / Burgundy Book
Text File  |  1997-11-17  |  67KB  |  1,633 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8. A Guide to Understanding Design Documentation
  9.  
  10.  
  11.  
  12.  
  13. A Guide to Understanding Design Documentation
  14.  
  15. ACKNOWLEDGMENTS
  16.  
  17.  
  18.  
  19. Special recognition is extended to James N. Menendez, National
  20. Computer Security Center (NCSC), as project manager and co-author
  21. of this document.  Recognition is also extended to Don Brinkley
  22. and Rick Dedrick, Unisys,  as co-authors of this document.
  23.  
  24.  
  25. Special acknowledgment is given to Barbara Mayer, NCSC, for her
  26. invaluable input and review of this document, which has resulted
  27. in its current form.
  28.  
  29.  
  30. Acknowledgment is also given to all those members of the computer
  31. security community who contributed their time and expertise by
  32. actively participating in the review of this document.
  33.  
  34.  
  35. A Guide to Understanding Design Documentation
  36.  
  37.  
  38. NCSC-TG-07 Version 1
  39. 1. INTRODUCTION
  40.  
  41. 1.1 Purpose
  42.  
  43.  
  44.  
  45. The Trusted Computer System Evaluation Criteria (TCSEC) is the
  46. standard used for evaluating the effectiveness of security controls
  47. built into Automated Data Processing (ADP) systems.  The TCSEC
  48. is divided into four divisions: D, C, B, and A, ordered in a hierarchical
  49. manner, with the highest division (A) being reserved for those
  50. systems providing the best available level of assurance.  Within
  51. Divisions C through A are a number of subdivisions known as classes,
  52. which are also ordered in a hierarchical manner to represent different
  53. levels of trust in these classes.
  54.  
  55.  
  56. Design Documentation is a TCSEC requirement for classes C1 and
  57. above.  The purpose of this guideline is to provide developers
  58. of trusted computer systems with guidance in understanding and
  59. meeting the design documentation requirements contained in the
  60. TCSEC.  To accomplish this, the guideline addresses two goals.
  61.  First, the guideline increases the vendors' awareness of the
  62. importance of design documentation to the security of their system
  63. throughout the system life-cycle.  Second, the guideline forms
  64. an initial basis of understanding between the vendor and evaluator
  65. communities concerning what is expected by the evaluation team
  66. in the review process and deliverables for design documentation.
  67.  
  68.  
  69. Any examples in this document are not to be construed as the only
  70. implementation that will satisfy the TCSEC requirement.  The examples
  71. are merely suggested implementations.  The recommendations in
  72. this document are also not to be construed as supplementary requirements
  73. to the TCSEC.  The TCSEC is the only metric against which systems
  74. will be evaluated.
  75.  
  76.  
  77. This guideline is part of the Technical Guidelines Program to
  78. provide helpful guidance on TCSEC issues and the features they
  79. address.
  80. 1.2 Scope
  81.  
  82.  
  83.  
  84. Design Documentation is a TCSEC requirement for classes C1 through
  85. A1.  It is one of the four types of documentation required by
  86. the TCSEC.  The other three documentation requirements are for
  87. a Trusted Facility Manual (TFM), Security Features Users Guide
  88. (SFUG), and Test Plan Documentation.  The role of Design Documentation
  89. is to identify and describe the Trusted Computing Base (TCB) and
  90. its security features.  Only Design Documentation for the TCB
  91. is required to meet the TCSEC requirements, but it is strongly
  92. recommended that design documentation exist for the entire system.
  93.  Throughout this document, the word system will be used as the
  94. object of design documentation to include the TCB and the untrusted
  95. portions of the system.  However, it should be emphasized that
  96. the TCSEC requirements are based solely on the design documentation
  97. of the TCB.
  98.  
  99.  
  100. Design Documentation assists vendors during the system life-cycle
  101. by thoroughly defining the policies that the system enforces.
  102.  It also provides the material by which the evaluator can assess
  103. whether, and to what degree, the design intent was carried into
  104. the implementation.  The design documentation is intended to guide
  105. the implementation of the product; it is not intended merely as
  106. an abstract philosophical exercise completely divorced from the
  107. "real" product. 
  108.  
  109.  
  110. Design documentation also increases the developer's level of understanding
  111. of the system.  It should facilitate the correct implementation
  112. of the intended behavior and features of the system.  This guideline
  113. will discuss design documentation and its features as they apply
  114. to computer systems and products that are being built with the
  115. intention of meeting the requirements of the TCSEC.
  116. 1.3 Control Objective
  117.  
  118.  
  119.  
  120. Each of the TCSEC requirements serves to ensure that one of the
  121. three basic control objectives for trusted computing - security
  122. policy, accountability, and assurance - are satisfied.  Throughout
  123. the system life-cycle, design documentation aids in attaining
  124. the third objective, assurance, by helping to "substantiate
  125. claims for the completeness of access mediation and degree of
  126. tamper resistance." [5]
  127.  
  128.  • The TCSEC gives the following as the Assurance Control Objective:
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  • "Systems that are used to process or handle classified
  137. or other sensitive information must be designed to guarantee correct
  138. and accurate interpretation of the security policy and must not
  139. distort the intent of that policy.  Assurance must be provided
  140. that correct implementation and operation of the policy exists
  141. throughout the system's life-cycle."[5]
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149. Design documentation plays an important role in providing this
  150. life-cycle assurance.  It demonstrates that correct implementation
  151. and enforcement of the system's security policy exists throughout
  152. the system's life-cycle.  As it relates to this control objective,
  153. design documentation facilitates the efforts of vendors and system
  154. developers in modifying and maintaining the system throughout
  155. its life-cycle, without compromising the trustworthiness of the
  156. system.
  157.  
  158.  
  159. In addition, design documentation serves as a useful training
  160. tool.  Design documentation presents a technical history of the
  161. system, containing documentation on past changes to the system
  162. as well as the current system.  It can be used in the training
  163. of new systems programmers and hardware engineers to familiarize
  164. them with the system.
  165. 2. OVERVIEW OF DESIGN DOCUMENTATION PRINCIPLES
  166.  
  167.  
  168.  
  169. Design documentation is a requirement for TCSEC classes C1 and
  170. above.  It provides a means of communicating the design of a system
  171. to developers that enables them to comprehend the design principles
  172. of the system and to make changes or upgrades to the system without
  173. compromising the trustworthiness of the system.  The information
  174. contained in the design documentation provides a rationale as
  175. to why a system is designed as it is and whether changes to the
  176. system will alter the intent of the design.
  177.  
  178.  
  179. Design documentation plays an important role in the life-cycle
  180. maintenance of a system and should not be viewed as a burden to
  181. system development.  This document should help developers understand
  182. the importance of design documentation in the life-cycle of computer
  183. systems, as well as to the maintenance of trust in these systems.
  184.  Developers should recognize the importance of meeting the purpose
  185. and intent of the TCSEC design documentation requirements as opposed
  186. to meeting them in a strictly mechanical fashion.
  187. 2.1 Purpose of Design Documentation
  188.  
  189.  
  190.  
  191. The primary purpose of design documentation is to define and describe
  192. the properties of a system.  As it relates to the TCSEC, design
  193. documentation provides an explanation of how the security policy
  194. of a system is translated into a technical solution through the
  195. TCB hardware, software, and firmware.
  196.  
  197.  
  198. Design documentation explains the system's protection mechanisms
  199. so that the effect a change may have on the security of the system
  200. can be evaluated prior to a change being performed.  It relates
  201. the TCSEC requirements to the architecture of a system and guides
  202. the implementation of the system under development.  Complete
  203. documentation ensures that the vendor has an understanding of
  204. what elements of the system are protection critical.  Design documentation
  205. explains the system design to the vendor's development team and
  206. enables the developers to understand the design of the system
  207. well enough to maintain the system and to perform any necessary
  208. changes to it without adversely affecting the trustworthiness
  209. of the system.   In addition, the design documentation assists
  210. the evaluators by providing them with a vehicle by which the completeness
  211. and correctness of the implementation can be assessed.  
  212. 2.2 Design Documentation Development for Evaluation
  213.  
  214.  
  215.  
  216. Developers should incorporate the design documentation requirements
  217. into the system development process.  A plan that addresses each
  218. design documentation requirement should be developed early in
  219. the development phase and shared with the National Computer Security
  220. Center evaluators to ensure the thoroughness of the documentation.
  221.  
  222.  
  223. Iterative development of the design documentation is the key to
  224. minimizing vendor and evaluator efforts during the evaluation
  225. process.  Vendors should precede their design documentation with
  226. the submittal of an outline of the design documentation to the
  227. evaluators.  This outline should contain, among other things,
  228. a statement of purpose and the intended audience of the design
  229. documentation.  Then, through a process of draft submittal, evaluator
  230. comments and requests for additional information, and draft revision
  231. the design documentation requirements will be met.  This guideline
  232. should expedite this process by bringing the vendor's first drafts
  233. closer to evaluator expectations and by facilitating convergence
  234. between vendor product and evaluator expectations.  If vendors
  235. establish a dialogue with evaluators early in the design documentation
  236. development and solicit their comments on early and subsequent
  237. drafts of the design documentation, both vendors and evaluators
  238. will save a great deal of time and effort in completing the evaluation
  239. process.
  240. 2.3 Level of Detail of Design Documentation
  241.  
  242.  
  243.  
  244. The level of detail of design documentation will determine its
  245. usefulness and adequacy in meeting the TCSEC requirements, as
  246. well as its usefulness to the vendor in the development and maintenance
  247. of the system.  For evaluators, the level of detail of the design
  248. documentation is reviewed to ensure that the system developer
  249. understands the design of the system well enough to make changes
  250. or upgrades to the system without compromising the trustworthiness
  251. of the system.  Design documentation also ensures that the developer
  252. understands the overall security concepts that are required to
  253. be part of the system design.  How well the security properties
  254. of the system are documented, and how this information is integrated
  255. into the design documentation will determine whether or not the
  256. level of detail of the design documentation is sufficient in meeting
  257. the TCSEC requirements.  
  258.  
  259.  
  260. The design documentation shall be detailed enough to serve as
  261. a useful tool for vendor maintenance of the system and shall clearly
  262. indicate what elements of the design impact the trustworthiness
  263. of the system.  One purpose behind design documentation is to
  264. assist vendors in maintaining the system and should not present
  265. a burden to the vendor in terms of quantity or detail.  A good
  266. rule of thumb is that the level of detail of design documentation
  267. should be sufficient to permit an individual with a degree in
  268. Computer Science, Electrical Engineering, or the equivalent with
  269. knowledge and skills in programming, hardware, or firmware development
  270. to understand the system design and be able to design system modifications
  271. without adversely affecting trustworthiness of the system.
  272. 2.4 Level of Effort for Meeting the Requirements
  273.  
  274.  
  275.  
  276. The level of effort necessary for developing satisfactory design
  277. documentation has historically been underestimated because the
  278. intent and implications of the TCSEC requirements for design documentation
  279. have seldom been completely understood.  An important factor to
  280. consider when deciding on an appropriate level of effort is the
  281. importance of the design documentation throughout the system life-cycle.
  282.  Well structured design documentation that is carefully planned
  283. and developed will make it easier to understand the design of
  284. the system.
  285.  
  286.  
  287. The level of effort necessary for a vendor to meet the design
  288. documentation requirements varies from system to system.  The
  289. level of effort generally will depend upon the necessary level
  290. of detail, which depends upon the class of evaluation and the
  291. complexity of the system being evaluated.  The requirements for
  292. TCSEC classes C1 and C2 may be met by simply following good engineering
  293. documentation practices, but as the TCSEC class level increases,
  294. so does the level of detail and effort necessary for meeting the
  295. TCSEC requirements.
  296.  
  297.  
  298. In terms of quantity, the length of design documentation at the
  299. higher classes has been found to be roughly comparable in bulk
  300. to the source listings of the overall system.  In general, producing
  301. the design documentation may require several man months to a man
  302. year of system development time at Classes C1 and C2, and up to
  303. several man years at the higher classes.  Although developing
  304. design documentation for a system may be time consuming, this
  305. time will be amply rewarded by the ease of system maintainability
  306. during its life-cycle.
  307. 2.5 Format of Design Documentation
  308.  
  309.  
  310.  
  311. The format and style for each vendor's design documentation is
  312. specific to that vendor, and to suggest a specific format would
  313. restrict vendors in developing their design documentation.  Although
  314. this guideline addresses distinct requirements for design documentation,
  315. it should not be assumed that separate documents are necessary
  316. to meet each requirement.  Indeed, the design documentation shall
  317. address each of the requirements, but it is acceptable for evaluators
  318. to be pointed to a number of documents to address a specific requirement.
  319.  Also, graphics serve as a useful adjunct to design documentation,
  320. although not sufficient alone to meet the TCSEC requirement for
  321. design documentation.  Developers may choose to use graphics to
  322. describe a system in addition to other design documentation.
  323.  
  324.  
  325. Differences among computer system architectures, designs, and
  326. implementation approaches make developing a standard format for
  327. design documentation inadvisable.  In addition, the format of
  328. design documentation for one system may be totally inappropriate
  329. for meeting another system's needs.  The format chosen by the
  330. vendor for presenting the design documentation may be influenced
  331. by business concerns other than expeditious security evaluation.
  332.  Different design documentation formats present different advantages
  333. and challenges to evaluators and different advantages and costs
  334. to vendors that should be weighed.
  335.  
  336.  
  337. A system's design may be evolutionary, resulting from improvements
  338. that build upon an initial version.  Maintaining documentation
  339. on a system in a release/update form may be convenient for a developer.
  340.   However, it is difficult for  new developers and life-cycle
  341. personnel to gain an understanding of the overall system architecture
  342. from documentation that describes the system in chronological
  343. terms through system releases and updates.  To be useful, these
  344. updates shall be incorporated into the design documentation, and
  345. the design documentation shall be presented as a complete description
  346. of the system, and not the initial description plus supplemental
  347. sections describing changes.
  348. 3. MEETING THE CRITERIA REQUIREMENTS
  349.  
  350.  
  351.  
  352. This section lists the TCSEC requirements for design documentation
  353. at each class.  All of these requirements have been extracted
  354. from the TCSEC design documentation requirements and include explicit
  355. and implicit design documentation requirements, where necessary.
  356.  Each numbered requirement is referenced in the discussions that
  357. follow in Sections 6 and 7 of this document.  This section serves
  358. as a quick reference for TCSEC class requirements.
  359.  
  360.  
  361. As the TCSEC evaluation class level increases, it is implicitly
  362. required that the design documentation be more detailed.  This
  363. is due to an increase in assurance required at the higher classes,
  364. as well as the introduction of new features at the higher classes
  365. that need to be documented, for example, labeling, auditing.
  366. 3.1 The C1 Design Documentation Requirements
  367.  
  368.  
  369.  
  370. Requirement 1 - Describe the philosophy of protection.
  371.  
  372.  
  373. Requirement 2 - Describe how the philosophy of protection is translated
  374. into the TCB.
  375.  
  376.  
  377. Requirement 3 - Describe how the TCB is modularized (if modular).
  378.  
  379.  
  380. Requirement 4 - Describe all interfaces between the TCB modules
  381. (if modular).
  382.  
  383.  
  384. Requirement 5 - Describe how the TCB protects itself.
  385.  
  386.  
  387. Requirement 6 - Provide a statement of the system security policy.
  388. 3.2 The C2 Design Documentation Requirements
  389.  
  390.  
  391.  
  392. No new requirements have been added at the C2 class.
  393. 3.3 The B1 Design Documentation Requirements
  394.  
  395.  
  396.  
  397. Requirement 7 - Provide an informal or a formal description of
  398. the security policy model enforced by the TCB.
  399.  
  400.  
  401. Requirement 8 - Explain the sufficiency of the security policy
  402. model to enforce the security policy.
  403.  
  404.  
  405. Requirement 9 - Identify and describe the TCB protection mechanisms.
  406.  
  407.  
  408. Requirement 10 - Explain how the TCB mechanisms satisfy the security
  409. policy model.
  410. 3.4 The B2 Design Documentation Requirements
  411.  
  412.  
  413.  
  414. Requirement 11 - Describe how the TCB is modularized.
  415.  
  416.  
  417. Requirement 12 - Describe all of the interfaces between the TCB
  418. modules.
  419.  
  420.  
  421. Requirement 13 - Provide a formal description of the security
  422. policy model.
  423.  
  424.  
  425. Requirement 14 - Prove the sufficiency of the security policy
  426. model to enforce the security policy.
  427.  
  428.  
  429. Requirement 15 - Show that the Descriptive Top Level Specification
  430. (DTLS) is an accurate description of the TCB interface.
  431.  
  432.  
  433. Requirement 16 - Describe how the TCB implements the Reference
  434. Monitor Concept.
  435.  
  436.  
  437. Requirement 17 - Describe why the reference monitor is tamper
  438. resistant.
  439.  
  440.  
  441. Requirement 18 - Describe why the reference monitor cannot be
  442. bypassed.
  443.  
  444.  
  445. Requirement 19 - Describe why the reference monitor is correctly
  446. implemented.
  447.  
  448.  
  449. Requirement 20 - Describe how the TCB is structured to facilitate
  450. testing.
  451.  
  452.  
  453. Requirement 21 - Describe how the TCB is structured to enforce
  454. least privilege.
  455.  
  456.  
  457. Requirement 22 - Present the results and methodology of the covert
  458. channel analysis.
  459.  
  460.  
  461. Requirement 23 - Describe the tradeoffs involved in restricting
  462. covert channels.
  463.  
  464.  
  465. Requirement 24 - Identify all auditable events that may be used
  466. in exploitation of known covert storage channels.
  467.  
  468.  
  469. Requirement 25 - Provide the bandwidths of known covert storage
  470. channels whose use is not detectable by auditing mechanisms.
  471. 3.5 The B3 Design Documentation Requirements
  472.  
  473.  
  474.  
  475. Requirement 26 - Identify all auditable events that may be used
  476. in exploitation of known covert timing channels.
  477.  
  478.  
  479. Requirement 27 - Provide the bandwidths of known covert timing
  480. channels whose use is not detectable by auditing mechanisms.
  481.  
  482.  
  483. Requirement 28 - Describe how the system complies with additional
  484. B3 system architecture requirements, for example, minimal TCB
  485. and layering.
  486.  
  487.  
  488. Requirement 29 - Informally show consistency of the TCB implementation
  489. (in hardware, firmware, and software) with the DTLS.
  490.  
  491.  
  492. Requirement 30 - Informally show correspondence between elements
  493. of the DTLS and elements of the TCB.
  494.  
  495.  
  496. Requirement 31 - Informally show consistency of the DTLS with
  497. the model.
  498. 3.6 The A1 Design Documentation Requirements
  499.  
  500.  
  501.  
  502. Requirement 32 - Informally show consistency of the TCB implementation
  503. with the Formal Top Level Specification (FTLS).
  504.  
  505.  
  506. Requirement 33 - Informally show correspondence between elements
  507. of the FTLS and elements of the TCB.
  508.  
  509.  
  510. Requirement 34 - Clearly describe hardware, software, and firmware
  511. internal to the TCB that is not dealt with in the FTLS.
  512.  
  513.  
  514. Requirement 35 - Informally or formally show consistency of the
  515. FTLS with the model.
  516.  
  517.  
  518. Requirement 36 - Informally show correspondence between the FTLS
  519. and the DTLS.
  520. 4. COMPONENTS OF DESIGN DOCUMENTATION
  521.  
  522.  
  523.  
  524. Design documentation describes why a system is trusted, how this
  525. trust is achieved, the mechanisms which provide the trust, and
  526. the relevant information that makes proper maintenance of a system
  527. possible.  Design documentation at TCSEC class C1 lays the foundation
  528. for trusted systems by defining the philosophy of protection of
  529. a system.  As the TCSEC classes increase, the level of detail
  530. and the quantity of information contained in the design documentation
  531. shall also increase.  The following sections discuss design documentation
  532. and its role in describing the security policy of the system,
  533. the protection mechanisms of the system, and the specific requirements
  534. concerning covert channels.
  535. 4.1 Documenting The Security Policy
  536.  
  537.  
  538.  
  539. The design and development of any trusted system, from TCSEC class
  540. C1 to A1, is based upon a philosophy of protection that shall
  541. be described in the design documentation (Requirement 1).  Design
  542. documentation explains and defines the philosophy of protection
  543. by describing how a system provides trust.  Trust in computer
  544. systems is provided by the protection mechanisms contained within
  545. the TCB, such as discretionary access controls and identification
  546. and authentication mechanisms.  These and all of the TCB mechanisms
  547. and their functions shall be described in the design documentation.
  548.  In addition, the system security policy, i.e., what is being
  549. accessed by whom or from what, shall also be described in the
  550. design documentation (Requirement 6).
  551.  
  552.  
  553. In order to describe how a system is trustworthy, the design documentation
  554. shall describe how the philosophy of protection is translated
  555. into the TCB (Requirement 2) and how it is supported by the TCB
  556. protection mechanisms.  The design documentation shall first define
  557. the boundaries of the system and shall describe the parts of the
  558. system that are security relevant and the parts that are not.
  559.  Rationale shall be presented that those portions of the system
  560. which are claimed to be outside of the TCB, are really outside.
  561.  The proper identification of these parts is important to the
  562. maintenance of security in the system because it is necessary
  563. to know when a change to the system will affect the TCB implementation,
  564. and possibly violate the security policy of the system.
  565.  
  566.  
  567. At the higher TCSEC classes, the description of the philosophy
  568. of protection evolves into a more structured description of how
  569. a system provides trust.  At TCSEC class B1, this philosophy of
  570. protection shall be presented as an informal or formal security
  571. policy model in the design documentation (Requirement 7).  This
  572. security policy model shall informally or formally define the
  573. subjects, objects, modes of access, and the security properties
  574. of the system.  In addition, the model shall define the initial
  575. state of the system, a secure state of the system, and the way
  576. in which the system progresses from one state to the next.  An
  577. informal security policy model may be presented in a natural language,
  578. for example, English.  An explanation shall be provided demonstrating
  579. that the informal model is sufficient to enforce the security
  580. policy (Requirement 8).
  581.  
  582.  
  583. At TCSEC class B2, a formal security policy model shall exist
  584. (Requirement 13).  In addition to the B1 requirements, the formal
  585. security policy model shall contain: a set of security properties
  586. that captures the security policy, an abstract description of
  587. the operations performed by the TCB, and a rigorous argument through
  588. the use of predicate calculus that the description is consistent
  589. - internally consistent, that is, is not self-contradictory. 
  590. The model shall include a proof that if the initial state of the
  591. system satisfies the definition of a "secure" state
  592. and if all assumptions of the model are satisfied, then all future
  593. states of the system will be secure.
  594.  
  595.  
  596. A security policy model provides assurance that the system has
  597. been designed to enforce the security policy and provides a basis
  598. for the TCB implementation.  As a means of increasing assurance,
  599. the design documentation shall show that the security policy model
  600. is sufficient to enforce the security policy of the system (Requirement
  601. 8).  At TCSEC class B1, it shall be sufficient to show this in
  602. a natural language, e.g., English, but at class B2, this sufficiency
  603. of the security policy model shall be shown through a formal proof
  604. (Requirement 14).  The design documentation shall provide a mapping
  605. of the security properties to the security policy.  This sufficiency
  606. shall be demonstrated by describing how all aspects of the security
  607. policy are addressed by the security policy model.
  608.  
  609.  
  610. An example of a formal security policy that enforces the DoD security
  611. policy is the Bell-La Padula model [1].  Although the Bell-La
  612. Padula security policy model supports the DoD security policy,
  613. it is important to realize that this does not mean that the Bell-La
  614. Padula model model can be directly used for all systems.  The
  615. Bell-La Padula model, when used with different systems, will need
  616. to be representative of the system.
  617.  
  618.  
  619. At TCSEC class B2, the TCSEC design specification and verification
  620. requirement calls for a descriptive top level specification (DTLS)
  621. of the TCB to be maintained to provide documentary evidence of
  622. how the formal security policy model is implemented through the
  623. TCB interface.  The DTLS provides evaluators with a better understanding
  624. of the implementation of the reference monitor and provides maintenance
  625. personnel with the necessary documentation to correct, modify,
  626. or augment the TCB without destroying the TCB's cohesiveness and
  627. internal consistency.  The description of the TCB should contain
  628. a description of the services and functions provided by the TCB
  629. and how they are invoked.  For example, for UNIX1-based systems,
  630. the DTLS may be based upon enhanced manual pages.  The manual
  631. pages shall include enough information to satisfy the design specification
  632. and verification requirement that the TCB be described in "terms
  633. of exceptions, error messages, and effects."[5] These individual
  634. manual sections should be accompanied by detailed section headers
  635. which clearly explain the security concepts and entities referenced
  636. within each section.  The design documentation shall demonstrate
  637. that the DTLS is an accurate description of the TCB interface
  638. (Requirement 15).  It should do this by accurately and completely
  639. describing the DTLS in relation to the TCB interface.
  640.  
  641.  
  642. The design documentation shall be used to test against the TCB
  643. to, "demonstrate that the TCB implementation is consistent
  644. with the descriptive top level specification." [5]  The design
  645. documentation shall describe how the TCB is structured to facilitate
  646. this testing (Requirement 20).
  647.  
  648.  
  649. At TCSEC class B3, the design documentation shall informally show
  650. consistency of the TCB hardware, firmware, and software implementation
  651. with the DTLS as well as showing correspondence between elements
  652. of the DTLS and elements of the TCB (Requirements 29, 30).  The
  653. goal of these two requirements is to ensure that the mapping between
  654. the TCB and DTLS is complete, easily understandable, unambiguous,
  655. and one-to-one between elements of the TCB implementation and
  656. elements of the DTLS.  The level of detail of this mapping should
  657. be sufficient for any inconsistency to be obvious to members of
  658. the vendor's development team throughout the system life-cycle.
  659.  
  660.  
  661. Also at TCSEC class B3, the design documentation shall provide
  662. a mapping from the DTLS to the TCB implementation (Requirement
  663. 30).  This mapping should demonstrate that all elements that were
  664. specified were, in fact, implemented, and that any code that appears
  665. which is not specified directly merely reflects implementation
  666. detail; that there are no new, unspecified, user interfaces implemented.
  667.  With this mapping, the design documentation shall describe all
  668. areas of correspondence between elements of the -
  669.  
  670.  
  671. -----------------------------------
  672.  
  673.  
  674. 1 UNIX is a trademark of AT&T Bell Labs
  675.  
  676.  
  677. DTLS and elements of the TCB.  For example, the mapping may be
  678. pointers in the DTLS description to source code modules of the
  679. TCB implementation.
  680.  
  681.  
  682. The addition of the design specification and verification requirement
  683. of a mapping between the DTLS and the formal security policy model
  684. completes the evidence from the security policy to implementation.
  685.  The entities of the model shall be shown to correspond to the
  686. elements of the DTLS (Requirement 31).  This correspondence provides
  687. assurance that the security properties that are proven in the
  688. formal model are accurately reflected in the implementation.
  689.  
  690.  
  691. At TCSEC class A1, the mapping shall be from the formal top level
  692. specification (FTLS) to the TCB (Requirements 32, 33).  In addition,
  693. the mapping to the model shall be from the FTLS (Requirement 35).
  694.  These changes reflect the introduction of an FTLS requirement
  695. in the design specification and verification requirements at A1.
  696.  The design documentation shall describe how the FTLS accurately
  697. represents the TCB interface.  The hardware/firmware components
  698. of the TCB, such as mapping registers and direct memory access
  699. input/output (I/O) components, that are directly or indirectly
  700. visible at the TCB interface shall be described in the design
  701. documentation.  As stated previously, the goal of these requirements
  702. is to ensure that the mapping between the elements of the TCB
  703. implementation and the FTLS are complete, easily understandable,
  704. unambiguous, and one-to-one.
  705.  
  706.  
  707. Although the TCSEC design documentation requirement changes at
  708. class A1 to require a mapping from the FTLS to the TCB, a DTLS
  709. is still required for class A1 systems.  At TCSEC class A1, the
  710. DTLS serves to augment the FTLS by completing the description
  711. of the TCB in an informal language and by providing the conceptual
  712. glue to the specification of the reference monitor mechanism and
  713. the other TCB components.  Since there is an explicit requirement
  714. at class A1 that both the FTLS and DTLS correspond to the formal
  715. security policy model, the DTLS and the FTLS must correspond (Requirement
  716. 36).  At TCSEC class A1, "the FTLS and DTLS may be two separate
  717. documents, or they may be combined into a Complete Top Level Specification
  718. (CTLS).  In a CTLS, the FTLS and DTLS portions (shall) be separately
  719. identifiable.  The CTLS (shall) be a complete and accurate description
  720. of the TCB, and it (shall) be sufficiently well commented/annotated
  721. so that it can be easily understood with little or no knowledge
  722. of formal specifications."[8]
  723.  
  724.  
  725. It is recognized that not all of the TCB internals are able to
  726. be specified within the FTLS.  For the hardware, firmware, and
  727. software internal to the TCB, but not dealt with in the FTLS,
  728. the design documentation shall describe them in complete, clear,
  729. and careful detail (Requirement 34).
  730. 4.2 Documenting TCB Protection Mechanisms
  731.  
  732.  
  733.  
  734. As part of the description of the philosophy of protection and
  735. how it translates into the TCB, the design documentation shall
  736. include explanations of the security services offered by the TCB
  737. software, hardware, and firmware mechanisms from a system level
  738. view (Requirement 2).  At TCSEC class C1, the design documentation
  739. for these protection mechanisms shall include how the mechanisms
  740. protect the TCB from tampering (Requirements 5).  The description
  741. of why the TCB is tamper resistant is an important requirement
  742. for all of the TCSEC classes.  This design documentation requirement
  743. supports the TCSEC class C1 system architecture requirement which
  744. calls for the TCB to maintain a domain that implements the reference
  745. monitor concept that, "protects it from external interference
  746. or tampering"[5]. The mechanisms described in this section
  747. of the design documentation include things such as Discretionary
  748. Access Control (DAC) and identification and authentication (I&A)
  749. mechanisms.  For example, the design documentation shall describe
  750. the DAC enforcement mechanism and how it controls discretionary
  751. access between named users or groups and named objects within
  752. the ADP system.  As it relates to identification and authentication,
  753. the design documentation shall describe how users are identified
  754. to the TCB and the mechanism that authenticates the user's identity.
  755.  Furthermore, the design documentation shall describe how the
  756. TCB protects the authentication data.  To ensure that these mechanisms
  757. have not failed in any way, hardware and software mechanisms shall
  758. exist to periodically validate the correct operation of the on-site
  759. hardware and firmware elements of the TCB.  These system integrity
  760. mechanisms shall also be described in the design documentation.
  761.  
  762.  
  763. At TCSEC class B1, the design documentation shall identify and
  764. provide descriptions of the TCB protection mechanisms (Requirement
  765. 9).  This  documentation is required to provide the additional
  766. assurance required at TCSEC class B1.  In most cases, these TCB
  767. protection mechanisms at TCSEC class B1 may be the same protection
  768. mechanisms that were described in TCSEC class C1, but at class
  769. B1, the description of these mechanisms shall describe how they
  770. support the additional system architecture requirement for process
  771. isolation.  Process isolation mechanisms that prevent untrusted
  772. subjects from directly accessing separate address spaces are introduced
  773. at TCSEC class B1 and shall be described in the design documentation.
  774.  The design documentation shall also show that all of the security
  775. services required by the security policy model are provided by
  776. the TCB mechanisms (Requirement 10).
  777.  
  778.  
  779. At TCSEC class B2, the design documentation shall describe how
  780. the TCB protection mechanisms implement the reference monitor
  781. concept, i.e., is nonbypassable, always invoked, and small enough
  782. to be analyzed (Requirement 16).  The design documentation requirement
  783. should demonstrate how the reference validation mechanism is tamper
  784. resistant, cannot be bypassed, is correctly implemented, and is
  785. structured to enforce least privilege (Requirements 17, 18, 19,
  786. 21).  Although a reference monitor has been in place since TCSEC
  787. class C1, the system architecture requirements at TCSEC class
  788. B2 require that the TCB be protected, "from external interference
  789. and tampering," maintain process isolation, and be "internally
  790. structured into well defined largely independent modules."[5]
  791. These additional requirements shall be reflected in the design
  792. documentation.
  793.  
  794.  
  795. One position for how the reference monitor hardware should be
  796. documented is presented in the following paragraphs:
  797.  
  798.  
  799. "For microprograms (firmware), design documentation is needed
  800. for common routines, that is, documentation which fully describes
  801. the functionality and what is done to implement that functionality.
  802.  At the least, a high level view of major operations, e.g., interrupts,
  803. I/O instruction interpretations is needed if the microcode is
  804. not modular enough to be described in terms of microroutines.
  805.  
  806.  
  807. For items inside the TCB, but outside of the reference monitor
  808. (such as most disk controllers, printers, and other peripherals),
  809. the interface must be described, but not the internals.
  810.  
  811.  
  812. In the case of systems that do not use microcode, convincing arguments
  813. must be provided as to what elements of the hardware are security
  814. critical and why."[2]
  815.  
  816.  
  817. The design documentation for the TCB firmware should parallel
  818. the documentation that is written for the TCB software, that is,
  819. it should fully describe the functionality and what is done to
  820. implement the functionality of the security kernel.
  821.  
  822.  
  823. Assurance needs to be provided that the TCB is protected from
  824. modification.  At TCSEC class B2, the design documentation shall
  825. provide this assurance through a description of why the reference
  826. monitor is tamper resistant (Requirement 17).  This description
  827. shall include the methods and mechanisms by which the TCB protects
  828. itself from illicit modification.  Any hardware mechanisms used
  829. by the TCB to separate protection critical elements from those
  830. that are not protection critical shall be described.  The mechanisms
  831. used by the TCB to help support logically distinct storage objects
  832. with separate attributes shall also be described.  The mechanisms
  833. used to protect against illicit modification may include some
  834. of the same mechanisms used to mediate accesses of objects by
  835. subjects that were introduced at TCSEC class C1.  These mechanisms
  836. shall be described again at TCSEC class B2, but in greater detail
  837. as to how they apply to the reference validation mechanism.
  838.  
  839.  
  840. The previous paragraph explained how the design documentation
  841. describes protection mechanisms, but more importantly, at TCSEC
  842. class B2, the design documentation shall show that all of the
  843. TCB software, firmware, and hardware mechanisms have been implemented
  844. as described and that the implementation functions correctly (Requirement
  845. 19).  The design documentation shall justify the correctness of
  846. the entire TCB.
  847.  
  848.  
  849. Also, at TCSEC class B2, the design documentation shall describe
  850. how the TCB is structured to enforce least privilege (Requirement
  851. 21).  This description shall relate to the hardware, firmware,
  852. and software modules of the TCB, as well as to the enforcement
  853. of least privilege both within the TCB and upon trusted subjects.
  854.  Least privilege ensures that any TCB module or trusted process
  855. has only those privileges and capabilities needed for it to perform
  856. the specific function for which it was designed.  For example,
  857. if the hardware architecture implements protection rings, a description
  858. shall be given of the ring mechanisms.  This description shall
  859. show how access to the innermost ring provides a means of running
  860. highly privileged processes, while the outermost ring provides
  861. a means of running unprivileged processes.  Likewise, the description
  862. shall justify placement of functions within the higher privileged
  863. rings and the conferring of special privileges to trusted processes.
  864.  Thus, the hardware is shown as a means of enforcing least privilege.
  865.  
  866.  
  867.  
  868. Similarly, firmware and software mechanisms may provide a means
  869. of enforcing least privilege.  For example, a labeling mechanism
  870. may be implemented in software or firmware.  Because labels may
  871. be used to enforce least privilege, the software or firmware modules
  872. enforcing the labeling and label based access control shall be
  873. shown as a means of enforcing least privilege. 
  874.  
  875.  
  876. The separation of administrative roles in the system is one more
  877. way in which least privilege may be exercised.  In this case,
  878. the roles of system administrator, security administrator, and/or
  879. system auditor may be performed by separate individuals.  This
  880. is to ensure that the security functions of the system are not
  881. able to be performed by a single person.  The way these roles
  882. are carried out in the system shall be described in the design
  883. documentation.
  884.  
  885.  
  886. At TCSEC class B3, the system architecture requirements call for
  887. the TCB to be minimized, i.e., only security relevant functions
  888. appear within the TCB.  The TCB at this class, "shall incorporate
  889. significant use of layering, abstraction, and data hiding,"
  890. and shall have minimal complexity.  The design documentation shall
  891. describe how the system complies with these additional architectural
  892. requirements in (Requirement 28).  As stated previously, as the
  893. TCSEC classes increase and the implementation of the reference
  894. monitor concept becomes more defined, the amount of design documentation
  895. shall also increase.
  896. 4.3 Documentation of Covert Channels
  897.  
  898.  
  899.  
  900. A portion of the B2 requirements for design documentation addresses
  901. covert channels.  The results of all covert channel analysis need
  902. to be in the design documentation to aid in the design and development
  903. of TCB mechanisms.  For this reason, the design documentation
  904. shall present the results of the covert channel analysis and the
  905. methodology used (Requirement 22).  The design documentation shall
  906. provide an overview of the covert storage channel analysis and
  907. testing procedures.  It shall document the results of these tests
  908. and all of the covert channels identified.  All auditable events
  909. shall be identified and described for all covert storage channels
  910. that are not removed from the system (Requirement 24).
  911.  
  912.  
  913. When covert channels are identified, actions are sometimes taken
  914. to restrict the bandwidth of those channels.  The design documentation
  915. shall describe and discuss these actions and the resulting degree
  916. of covert channel restriction in light of performance degradation,
  917. operational utility, or other considerations (Requirement 23).
  918.  Processing delays resulting from reducing the number and bandwidth
  919. of covert channels shall be identified and characterized.  The
  920. design documentation shall also note whether the exploitation
  921. of known covert channels is auditable.  There will be some covert
  922. storage channels whose use will not be detectable by auditing
  923. mechanisms.  The design documentation shall document the worst
  924. case and expected case bandwidths of these storage channels whose
  925. exploitation is not auditable (Requirement 25).
  926.  
  927.  
  928. At TCSEC class B3, the design documentation shall recognize the
  929. introduction of covert timing channels into the requirements and
  930. shall consider them in all covert channel related descriptions
  931. as stated above (Requirements 26, 27).  The covert timing channel
  932. analysis and testing procedures, and the results obtained from
  933. the tests shall be described in the design documentation.  Additionally
  934. at TCSEC class A1, formal methods shall be used in the covert
  935. channel analysis and shall be described in the design documentation.
  936. 5. OTHER TOPICS
  937.  
  938. 5.1 Modularity
  939.  
  940.  
  941.  
  942. An important architectural feature of trusted systems for TCSEC
  943. class B2 and above is that the TCB be modular.   The modularity
  944. of the TCB is important for ease of understanding, ease of analysis,
  945. and ease of maintenance.  Modularity ensures that interfaces are
  946. well defined and errors are contained.  It also provides a basis
  947. for enforcing least privilege.  The content of hardware and software
  948. modules should be selected based on the following criteria: a
  949. module performs exactly one well defined action, a module has
  950. a well defined interface, a module interacts with other modules
  951. only in well defined ways, and a module is called upon to perform
  952. a function whenever that function is required.  Although TCB modularity
  953. is not a requirement until class B2 (Requirements 11, 12), it
  954. is possible that vendors would want to build systems with modular
  955. TCBs at the lower classes.  Regardless of class, if the TCB is
  956. modular, the design documentation shall describe how the TCB is
  957. modular and the interfaces between the TCB modules (Requirement
  958. 3, 4).  As with all design documentation, the level of detail
  959. shall permit the description of the interfaces between the modules
  960. to be a useful description.  Specifically, the design documentation
  961. shall include identification of the TCB hardware, software, and
  962. firmware modules, why the modules are considered as such, the
  963. interfaces between them, and the implementation of the modules.
  964.  A mapping of the security services and mechanisms to the modules
  965. should also be described. 
  966.  
  967.  
  968. The level of detail of the design documentation increases the
  969. amount of assurance to be gained by the developers and evaluators.
  970.  The description of the interfaces between the modules, whether
  971. hardware, firmware, or software, shall describe the types and
  972. sources of information passing between them (Requirement 4). 
  973. In addition, the interfaces between these TCB modules and other
  974. system modules external to the TCB shall be described.  This description
  975. is necessary to show that no breach of security can occur through
  976. the interfaces.
  977.  
  978.  
  979. In some cases, software modules may depend upon hardware or firmware
  980. modules to perform correctly and these dependencies should also
  981. be included in the design documentation.
  982. 5.2 Hardware Design Documentation
  983.  
  984.  
  985.  
  986. Hardware design documentation for a system shall be provided at
  987. all levels of trust.  Specifically, at TCSEC classes B2 and above,
  988. it is felt that the hardware design documentation is critical
  989. to the security of a system.  At this class, systems "shall
  990. make effective use of available hardware to separate those elements
  991. that are protection critical from those that are not."[5]
  992. To meet this TCSEC requirement, developers should know the hardware
  993. base they are building on top of.  Also, evaluators will need
  994. the hardware design documentation in order to evaluate that the
  995. vendor is making "effective use" of the hardware.
  996.  
  997.  
  998. The hardware design documentation includes descriptive information
  999. about the system's Central Processing Unit(s) (CPU), Memory Management
  1000. Unit(s) (MMU), and all other additional processors, for example,
  1001. I/O Processors, channel devices.  The hardware design documentation
  1002. is intended to discuss what the hardware is meant to do, but does
  1003. not need to include details of implementation, such as the flow
  1004. of control to perform a specific action.  The hardware design
  1005. documentation for every logical module in the hardware base should
  1006. include a functional name, functional description, and a functional
  1007. interface of that module.
  1008.  
  1009.  
  1010. The hardware design documentation defines the hardware portion
  1011. of the TCB interface.  The information on the hardware interface
  1012. is important to correctly develop TCB routines and device drivers.
  1013.  Additionally, the hardware design documentation provides sufficient
  1014. information that the TCB meets the System Architecture requirements
  1015. of the TCSEC.
  1016.  
  1017.  
  1018. The information contained in the hardware design documentation
  1019. shall be complete, specifying all possible interfaces to the system
  1020. hardware, including the user-to-hardware interface as well as
  1021. the TCB software-to-hardware interface.  The hardware design documentation
  1022. should include unprivileged instructions, privileged instructions,
  1023. unpublished instructions, and all CPU-to-MMU, CPU-to-Channel,
  1024. CPU-to-I/O bus, and additional processor interactions.  Also,
  1025. the software interface visible registers that exist on the CPU,
  1026. MMU, and other processors shall be described in the hardware design
  1027. documentation.
  1028.  
  1029.  
  1030. The design documentation for some hardware modules may require
  1031. internal detail down to a bit level functional description of
  1032. the module.  The modules that fall into this category are those
  1033. that make up thereference monitor, such as the address translation
  1034. module, process isolation support module, fault handling module,
  1035. I/O control module, and the diagnostic module.  These hardware
  1036. modules of the reference monitor directly support security and
  1037. will require an explanation of why the reference monitor is "tamper
  1038. resistant, cannot be bypassed, and is correctly implemented."[5]
  1039. 5.3 Configuration Management
  1040.  
  1041.  
  1042.  
  1043. The design documentation for the system shall be under configuration
  1044. management for the entire life-cycle of the system.  Design documentation
  1045. is only useful if it is complete and accurate.  This means that
  1046. any change to the system should also result in a change to the
  1047. design documentation for the system. 
  1048.  
  1049.  
  1050. The design documentation for a system should be treated as a configuration
  1051. item for the system and should be subject to the identification,
  1052. control, accounting, and audit functions of configuration management.
  1053.  "Initial phases of configuration control are directed towards
  1054. control of the system configuration as defined primarily in design
  1055. documents.
  1056.  
  1057.  
  1058. Often a change to one area of a system may necessitate a change
  1059. to another area.  It is not acceptable to only write documentation
  1060. for new code or newly modified code, but rather documentation
  1061. for all parts of the TCB that were affected by the addition or
  1062. change shall be updated accordingly.  Although documentation may
  1063. be available, unless it is kept under configuration management
  1064. and updated properly it will be of little, if any use.  In the
  1065. event that the system is found to be deficient in documentation,
  1066. efforts should be made to create new documentation for areas of
  1067. the system where it is presently inadequate or nonexistent."[7]
  1068.  
  1069.  
  1070. The TCSEC requirements for configuration management do not begin
  1071. until TCSEC class B2, but this should not mean that the design
  1072. documentation for TCSEC class C1 to B1 systems not be under some
  1073. type of control.  At these lower classes, the control process
  1074. for the design documentation may be less formal than that required
  1075. by the configuration management requirements, but it should still
  1076. provide assurance that the design documentation accurately describes
  1077. the current system.
  1078.  
  1079.  
  1080. The National Computer Security Center has recently developed the
  1081. Ratings Maintenance Program (RAMP) which requires configuration
  1082. management at these lower classes of trust.  "By training
  1083. vendor personnel to recognize which changes may adversely affect
  1084. the implementation of the security policy of the system, and to
  1085. track these changes to the evaluated product through the use of
  1086. configuration management, RAMP will permit a vendor to maintain
  1087. the rating of the evaluated product without having to reevaluate
  1088. the new version." [7]
  1089.  
  1090.  
  1091. For further information about the RAMP program and about the configuration
  1092. management requirements for RAMP, contact:
  1093.  
  1094.  
  1095. National Computer Security Center
  1096.  
  1097.  
  1098. 9800 Savage Road
  1099.  
  1100.  
  1101. Fort George G. Meade, MD  20755 6000
  1102.  
  1103.  
  1104.        Attention: C12
  1105. 6. SUMMARY OF DESIGN DOCUMENTATION
  1106.  
  1107.  
  1108.  
  1109. Design documentation is responsible for describing systems at
  1110. all levels of trust.  During the life-cycle of a system, it describes
  1111. the system to facilitate changes and maintenance of the system.
  1112.  As it relates to the security of a system, design documentation
  1113. provides assurance by describing how a system provides trust and
  1114. shows that all of the protection mechanisms of a system are correctly
  1115. implemented and sufficiently provide the needed trust.  At the
  1116. lower classes, design documentation begins to describe how security
  1117. is provided in a system by stating the philosophy of protection
  1118. of the system.  At TCSEC class B1, the design documentation describes
  1119. the security policy model of a system, and at TCSEC class B2 the
  1120. security policy model is required to be formal.
  1121.  
  1122.  
  1123. Many of the other requirements in the TCSEC are related to design
  1124. documentation.  Design documentation shall describe how these
  1125. requirements are satisfied.  Covert channels are specifically
  1126. addressed in the design documentation requirement.  The assurance
  1127. provided by design documentation is dependent upon its thoroughness
  1128. and accuracy.  When design documentation is written, the role
  1129. that it plays in the system life-cycle should be kept in mind.
  1130.  A new employee should be able to look at the design documentation
  1131. and get an understanding of what the current system is and how
  1132. it works.  The key word in design documentation is current.  When
  1133. a system changes, the design documentation shall change accordingly.
  1134.  By accurately describing a system, design documentation provides
  1135. assurance that there is an understanding of how and why the system
  1136. provides trust.  In addition, it provides information that will
  1137. enable developers to analyze changes to the system to ensure that
  1138. they do not adversely affect the trustworthiness of the system.
  1139. APPENDIX B
  1140.  
  1141. EXCERPTS FROM FINAL EVALUATION REPORTS
  1142.  
  1143.  
  1144.  
  1145. This appendix reproduces excerpts from Final Evaluation Reports
  1146. for products currently on the Evaluated Products List.  The excerpts
  1147. are reproduced from the "Applicable Features" portion
  1148. of the section describing how the product met the requirements
  1149. for Design Documentation.
  1150.  
  1151.  
  1152. The Final Evaluation Reports are available from the National Computer
  1153. Security Center.  However, most of the vendor documents mentioned
  1154. in this appendix contain proprietary information, and therefore
  1155. are not publicly available.  Please do not request copies of the
  1156. vendor documents from the National Computer Security Center.
  1157. B.1 CLASS C2
  1158.  
  1159. B.1.1 UTX/32S[6]
  1160.  
  1161.  
  1162.  
  1163. The following documents were provided to the evaluation team in
  1164. fulfillment of the Design Documentation criterion:
  1165.  
  1166.  
  1167. "Security Policy Model"
  1168.  
  1169.  
  1170. "Program Maintenance Manual UTX/32S, Release 1.0 (DRAFT)".
  1171.  
  1172.  
  1173. "System Calls" and "Maintenance" in the "System
  1174. Administrator's Reference Manual".
  1175.  
  1176.  
  1177. "4.2BSD and UTX-32 Differences Study for Gould
  1178.  
  1179.  
  1180. UTX/32S"
  1181.  
  1182.  
  1183. "Memory Management for Gould UTX/32S"
  1184.  
  1185.  
  1186. "Object Reuse Study for Gould UTX/32S"
  1187.  
  1188.  
  1189. The "Gould UTX/32S 1.0 Security Policy Model" describes
  1190. Gould's philosophy of protection and explains how this philosophy
  1191. is translated into the TCB.  It identifies all elements comprising
  1192.  the TCB, including the kernel, programs, data files, and processes.
  1193.  Subjects and objects are identified, and the mediation of accesses
  1194. between them is described.  A mapping from the TCB to the security
  1195. philosophy is provided, and the discretionary access control,
  1196. identification and authentication, and audit features and mechanisms
  1197. are described.  Additionally,  the document discusses the role
  1198. of secure sockets in  interprocess communications.  The "Gould
  1199. UTX/32S 1.0 Security Policy Model" identifies all programs
  1200. comprising the TCB.
  1201.  
  1202.  
  1203. The kernel interface is described by the "System Calls"
  1204. section of the "System Administrator's Reference Manual".
  1205.  The "Maintenance" section of the reference manual comprises
  1206. manual pages useful for systems programmers in maintaining UTX/32S.
  1207. "4.2BSD and UTX-32 Differences Study for Gould UTX/32S"
  1208. describes differences between 4.2BSD UNIX and Gould UTX/32
  1209. 1.2. Using "4.2BSD and 4.3BSD as Examples of the UNIX
  1210. System," by J.S. Quarterman, A. Silberschatz, and J.L. Peterson
  1211. (Computing  Surveys, Vol. 17, No. 4, December 1985, pp. 379-418),
  1212. as a  baseline, the document identifies all instances where Gould
  1213. UTX/32 differs from the described UNIX system.
  1214.  
  1215.  
  1216.  
  1217. The "UTX/32S Program Maintenance Manual" describes code
  1218. modifications made to UTX/32 to meet the requirements of the "Gould
  1219. UTX/32S 1.0 Security Policy Model".  The document includes
  1220. an overview of the mechanisms implemented in UTX/32S to strengthen
  1221. security and to correct problems found in UTX/32 and  other UNIX
  1222. systems, and detailed descriptions for: the implementation of
  1223. trusted servers to replace the functionality of the eliminated
  1224. setuid and setgid bits; kernel modifications; auditing mechanisms;
  1225. and additions, deletions, and modifications  to utilities and
  1226. libraries.  Each module description includes an overview, a functional
  1227. specification, and a design specification.  Pointers to source
  1228. code, which Gould made  available to the evaluation team are provided.
  1229.  
  1230.  
  1231. Security critical features of the Gould PowerNode hardware used
  1232.  by UTX/32S are described in "UTX/32S Traps and Interrupts
  1233. and Memory Management for Gould UTX/32S."  "UTX/32S
  1234. Traps and  Interrupts" describes how UTX/32S makes use of
  1235. the trap and interrupt facilities to interface with the hardware
  1236. and process  environments.  "Memory Management for Gould
  1237. UTX/32S" describes how UTX/32S uses the memory management
  1238. facilities of the  PowerNode hardware to provide the process environment.
  1239.  Both  documents include applicable material from "Gould
  1240. SS 6 (Virtual  Mode), V6, and V9 Central Processing Unit Reference
  1241. Manual".
  1242.  
  1243.  
  1244. "Object Reuse Study for Gould UTX/32S" provides details
  1245. regarding how UTX/32S hardware and software manage system objects.
  1246.  This  study identifies the system resources which can be allocated
  1247. and deallocated, and details the strategies used to ensure that
  1248. one process cannot gain access to the resources or data previously
  1249. allocated to another process.  This study, along with "Memory
  1250. Management for Gould UTX/32S", provides a good description
  1251. of UTX/32S design features which are used to meet the Object Reuse
  1252. criterion.
  1253. B.2 CLASS B2
  1254.  
  1255. B.2.1 Multics3]
  1256.  
  1257.  
  1258.  
  1259. The following documents satisfy the Design Documentation  requirement:
  1260.  
  1261.  
  1262. Applicable Features
  1263.  
  1264.  
  1265. The "Computer Security Model: Unified Exposition and MULTICS
  1266. Interpretation" provides a description of Honeywell's philosophy
  1267. for protection and how this is translated into the TCB.  The security
  1268. model enforced by the TCB is the Bell-La Padula model.
  1269.  
  1270.  
  1271. Multics has a set of Multics Design Documents (MDDs) that describe
  1272. the TCB.  (These documents are Honeywell Internal Documentation
  1273. and are available only through the vendor by request.  Honeywell
  1274. reserves the right to deny such requests.)  The MDDs are organized
  1275. by major TCB service or function.  These design documents describe
  1276. the interfaces between TCB modules, how the TCB implements the
  1277. reference monitor, and how the TCB is structured to facilitate
  1278. testing and enforce least privilege.
  1279.  
  1280.  
  1281. These documents coupled with the Honeywell produced "Multics
  1282. Interpretation," referenced in the previous paragraph identify
  1283. the security protection mechanisms and explain how they satisfy
  1284. the model.
  1285.  
  1286.  
  1287. The DTLS is an accurate description of the TCB interface.
  1288.  
  1289.  
  1290. The "Covert Channel Analysis" describes all identified
  1291. covert channels, how they can and cannot be restricted, how they
  1292. are audited, and their bandwidths.
  1293. B.3 CLASS A1
  1294.  
  1295. B.3.1 SCOMP [4]
  1296.  
  1297.  
  1298.  
  1299. The following documents satisfy the Design Documentation requirement:
  1300. The manufacturer's philosophy of protection is documented in 
  1301. "SCOMP:  A Solution to the Multilevel Security Problem"
  1302. and its translation into the TCB given in "SCOMP Trusted
  1303. Computing Base."  The interfaces between the TCB modules
  1304. are described in the several Part II specifications, 
  1305.  
  1306.  
  1307. "Detail Specification for SCOMP Kernel Part I,
  1308.  
  1309.  
  1310. Release 2.1"
  1311.  
  1312.  
  1313. "Detail Specification for SCOMP Kernel Part II,
  1314.  
  1315.  
  1316. Release  2.1"
  1317.  
  1318.  
  1319. A formal description of the security policy model (Bell-La Padula)
  1320. that is enforced by the TCB is given in "Secure Computer
  1321. Systems", for the general case and Multics in particular
  1322. in "Computer Security Model:
  1323.  
  1324.  
  1325. Unified Exposition and MULTICS Interpretation".  The Bell-La
  1326. Padula Model has been accepted by the National Computer Security
  1327. Center to model security policy "Security Requirements for
  1328. Automatic Data Processing Systems" and to be consistent with
  1329. its axioms.  An interpretation of the model for the SCOMP system
  1330. is given in "SCOMP Interpretation of the Bell-La Padula Model."
  1331.  
  1332.  
  1333. The specific TCB protection mechanisms are 1) protection rings,
  1334. 2) SPM  mediation of per user virtual memory, 3) minimum privilege
  1335. for each TCB function, 4) integrity levels  for users, operators,
  1336. administrators, and security administrators, 5) individual trusted
  1337. software processes for  separate functions, and 6) ring gates
  1338. and checks on parameter passing.  The Part II Specifications previously
  1339. referenced provide the necessary documentation for satisfaction
  1340. of this requirement.  The explanation given to show that the TCB
  1341. protection mechanisms satisfy the model appears in "SCOMP
  1342.  Interpretation of the Bell-La Padula Model."
  1343.  
  1344.  
  1345. Section 3 of "SCOMP Trusted Computing Base" describes
  1346. the SCOMP TCB reference monitor implementation.  An analysis of
  1347.  the Reference Monitor appears in Appendix C and concludes that
  1348. the informal proofs that the SCOMP system implements the reference
  1349. monitor concept are adequate.
  1350.  
  1351.  
  1352. The TCB implementation was shown to be consistent with the FTLS
  1353. by specification to source code mappings
  1354.  
  1355.  
  1356. "FTLS to Code Mapping for the SCOMP Kernel Software"
  1357.  
  1358.  
  1359. "FTLS to Code Mapping for SCOMP Trusted Software"
  1360.  
  1361.  
  1362. "Justification for Unspecified Code for the SCOMP Kernel
  1363. Software, Release 2.1"
  1364.  
  1365.  
  1366. "Justification for Unspecified Code for SCOMP Trusted Software"
  1367.  
  1368.  
  1369. TCB testing is documented in:
  1370.  
  1371.  
  1372. "SCOMP Kernel Test Procedures"
  1373.  
  1374.  
  1375. "SCOMP Kernel Functional Test Summary"
  1376.  
  1377.  
  1378. "Kernel Software Test Report for the SCOMP,
  1379. Release 2.1"
  1380.  
  1381.  
  1382.  
  1383. "Trusted Software Test Plan for the SCOMP"
  1384.  
  1385.  
  1386. "Trusted Software Test Report for the SCOMP,
  1387. STOP Release 2.0"
  1388.  
  1389.  
  1390.  
  1391. "Trusted Software Test Report for the SCOMP,
  1392.  
  1393.  
  1394. Appendix A:Test Programs, Appendix B: Test Results"
  1395.  
  1396.  
  1397. "SCOMP Test and Verification Software
  1398.  
  1399.  
  1400. Description, Rev.  3"
  1401.  
  1402.  
  1403. The TCB structure provided added assurance of the validity of
  1404. the testing and helped to demonstrate the implementation of least
  1405. privilege.  The results of the covert channel analysis including
  1406. conservative bandwidth estimates are presented in "Covert
  1407. Channels in the SCOMP Kernel" and "Flow and Covert Channel
  1408. Analysis for SCOMP Trusted Software, Release 2.1." 61 Auditable
  1409. events, identified in Section 13 of "SCOMP Trusted Facility
  1410. Manual, STOP Release 2.1", and the scheme of randomly selected
  1411. delays on exception returns appear to satisfactorily limit the
  1412. utility of the identified covert channels.
  1413.  
  1414.  
  1415. Finally, the internal TCB mechanisms that are not security related
  1416. and hence not dealt with in the FTLS are described in the commercial
  1417. Honeywell Level 6 documentation ("Honeywell Level 6 Minicomputer
  1418. Systems Handbook, CC71" and "Honeywell Level 6 Communications
  1419. Handbook, AT97-02D"), and the SCOMP system unique specifications:
  1420.  
  1421.  
  1422. "Detail Specification for SCOMP Kernel Part I,Release 2.1"
  1423.  
  1424.  
  1425. "Detail Specification for SCOMP Kernel Part II, Release 2.1".
  1426. GLOSSARY
  1427.  
  1428. Access
  1429.  
  1430.  
  1431.  
  1432. A specific type of interaction between a subject and an object
  1433. that results in the flow of information from one to the other.[9]
  1434. Access Attribute
  1435.  
  1436.  
  1437.  
  1438. Characteristic of an access of an object that specifies possible
  1439. results of the access.  Four example access attributes follow:
  1440. execute (processing based upon  the object accessed, but neither
  1441. altering nor viewing  capability); read (viewing but not altering
  1442. capability); append (altering but not viewing capability); and
  1443. write  (both altering and viewing capabilities).[1]
  1444. Audit Trail
  1445.  
  1446.  
  1447.  
  1448. A chronological record of system activities that is sufficient
  1449. to enable the reconstruction, reviewing, and examination of the
  1450. sequence of environments and activities surrounding or leading
  1451. to an operation, a procedure, or an event transaction from its
  1452. inception to final results.[9]
  1453. Covert Channel
  1454.  
  1455.  
  1456.  
  1457. A communication channel that allows two cooperating processes
  1458. to transfer information in a manner that violates the system's
  1459. security policy.  Also called confinement channel.[9]
  1460. Covert Storage Channel
  1461.  
  1462.  
  1463.  
  1464. A covert channel that involves the direct or indirect writing
  1465. of a storage location by one process and the direct or indirect
  1466. reading of the storage location by another process.  Covert storage
  1467. channels typically involve a finite resource (e.g., sectors on
  1468. a disk) that is shared by two subjects at different security levels.[5]
  1469. Covert Timing Channel
  1470.  
  1471.  
  1472.  
  1473. A covert channel in which one process signals information to another
  1474. by modulating its own use of system resources (e.g., CPU time)
  1475. in such a way that this manipulation affects the real response
  1476. time observed by the second process.[5]
  1477. Descriptive Top Level Specification (DTLS)
  1478.  
  1479.  
  1480.  
  1481. A top level specification that is written in a natural language
  1482. (e.g.,  English), an informal program design notation, or a combination
  1483. of the two.[5]
  1484. Formal Security Policy Model
  1485.  
  1486.  
  1487.  
  1488. A mathematically precise statement of a security policy.  To be
  1489. adequately precise, such a model must represent the initial state
  1490. of a system, the way in which the system progresses from one state
  1491. to another,  and a definition of a "secure" state of
  1492. the system.  To be  acceptable as a basis for a TCB, the model
  1493. must be supported  by a formal proof that if the initial state
  1494. of the system satisfies the definition of a "secure"
  1495. state and if all  assumptions required by the model hold, then
  1496. all future states of the system will be secure.  Some formal modeling
  1497. techniques include: state transition models, temporal logic models,
  1498. denotational semantics models, algebraic  specification models.
  1499.  An example is the model described by Bell-La Padula.[9]
  1500. Formal Top Level Specification (FTLS)
  1501.  
  1502.  
  1503.  
  1504. A top level specification that is written in a formal mathematical
  1505. language to allow theorems showing the correspondence of the system
  1506. specification to its formal requirements to be hypothesized and
  1507. formally proven.[9]
  1508. Least Privilege
  1509.  
  1510.  
  1511.  
  1512. This principle requires that each subject in a  system be granted
  1513. the most restrictive set of privileges needed for the performance
  1514. of authorized tasks.  The application of this principle limits
  1515. the damage that can result from accident, error, or unauthorized
  1516. use.[9] 
  1517. Object
  1518.  
  1519.  
  1520.  
  1521. A passive entity that contains or receives information.  Access
  1522. to an object potentially implies access to the  information it
  1523. contains.  Examples of objects are: records, blocks, pages, segments,
  1524. files, directories, directory trees, and programs, as well as
  1525. bits, bytes, words, fields, processors, video displays, keyboards,
  1526. clocks, printers, and  network nodes.[9]
  1527. Reference Monitor Concept
  1528.  
  1529.  
  1530.  
  1531. An access control concept that refers to an abstract machine that
  1532. mediates all accesses to objects by subjects.[9]
  1533. Security Kernel
  1534.  
  1535.  
  1536.  
  1537. The hardware, firmware, and software elements of the Trusted Computing
  1538. Base that implement the reference monitor concept.  It must mediate
  1539. all accesses, be protected from modification, and be verifiable
  1540. as correct.[9]
  1541. Security Level
  1542.  
  1543.  
  1544.  
  1545. The combination of hierarchical classification and a set of nonhierarchical
  1546. categories that represents the sensitivity of information.[9]
  1547. Security Mechanism
  1548.  
  1549.  
  1550.  
  1551. A system or means of implementing a security service within a
  1552. system.
  1553. Security Policy
  1554.  
  1555.  
  1556.  
  1557. The set of laws, rules, and practices that regulate how an organization
  1558. manages, protects, and distributes sensitive information.[9]
  1559. Security Policy Model
  1560.  
  1561.  
  1562.  
  1563. A formal presentation of the security policy enforced by the system.
  1564.  It must identify the set of rules and practices that regulate
  1565. how a system manages, protects, and distributes sensitive information.[9]
  1566. Security Service
  1567.  
  1568.  
  1569.  
  1570. A system or method of providing a security relevant feature in
  1571. the system.
  1572. Sensitivity Label
  1573.  
  1574.  
  1575.  
  1576. A piece of information that represents the security level of an
  1577. object.  Sensitivity labels are used by the TCB as the basis for
  1578. mandatory access control decisions.[9]
  1579. Subject
  1580.  
  1581.  
  1582.  
  1583. An active entity, generally in the form of a person, process,
  1584. or device that causes information to flow among objects or changes
  1585. the system state.  Technically, a process/domain pair.[9]
  1586.  
  1587.  
  1588. Trusted Computing Base (TCB)
  1589.  
  1590.  
  1591. The totality of protection mechanisms within a computer system-including
  1592. hardware, firmware, and software-the combination of which is responsible
  1593. for enforcing a security policy.  It creates a basic protection
  1594. environment and provides additional user services required for
  1595. a trusted computer system.  The ability of a trusted computing
  1596. base to correctly enforce a security policy depends solely on
  1597. the mechanisms within the Trusted Computing Base and on the correct
  1598. input by system administrative personnel of parameters (e.g.,
  1599. a user's clearance level) related to the security policy.[9]
  1600. REFERENCES
  1601.  
  1602.  
  1603.  • 1. Bell, D.E., and L.J.  La Padula, "Secure Computer
  1604. System: Unified Exposition and Multics Interpretation," MTR-2997,
  1605. Mitre Corp., Bedford, MA, July 1975.
  1606.  • 2. Gabriele, Mark D., Excerpts from the Criteria Discussions
  1607. Forum on the Dockmaster computer system at the National Computer
  1608. Security Center, Forum entry #0680,  Hardware Design Documentation
  1609. at B2 and Above, May 9,  1987.
  1610.  • 3. National Computer Security Center, Final Evaluation Report
  1611. of Honeywell Multics MR11.0, CSC-EPL-85/003, June 1,  1986.
  1612.  • 4. Department of Defense Computer Security Center, Final Evaluation
  1613. of SCOMP, Secure Communications Processor, STOP  Release 2.1,
  1614. CSC-EPL-85/001, September 23, 1985.
  1615.  • 5. Department of Defense Standard, Department of Defense Trusted
  1616. Computer System Evaluation Criteria, DoD 5200.28- STD, December
  1617. 1985.
  1618.  • 6. National Computer Security Center, Final Evaluation Report
  1619. of Gould, Inc., Computer Systems Division, UTX/32S, Release 1.0,
  1620. CSC-EPL-86/007, December 31, 1986.
  1621.  • 7. National Computer Security Center, A Guide to Understanding
  1622. Configuration Management in Trusted Systems, NCSC-TG-006, March
  1623. 28, 1988.
  1624.  • 8. National Computer Security Center, Criterion Interpretation,
  1625. Report No. C1-CI-01-87, 1987.
  1626.  • 9. National Computer Security Center, Glossary of Computer
  1627. Security Terms, NCSC-TG-004-88, October 1988.
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633. t